using System;
using System.Collections.Generic;
using System.Collections ;
using System.Text;

using CommonTypes;
using BuildingBasicDomain;



namespace MVCFramework.View
{     

    public delegate void DrawScene();
    public abstract class ViewState : ViewStateAbstract,IDrawable
    {
        public void drawPoint(IPoint  p)
        {
            if (p == null) return;
            IPoint point = p;

            if (point is SnapPoint)
            {
                DrawMidlleSnapPoint(point); return;
            }

 
            if (p is SnapPoint)
            {
                SnapPoint Snappoint = (SnapPoint)p;

            }
        }

        private bool isSnapEnabled;
        public bool IsSnapEnabled
        {
            get { return isSnapEnabled; }
            set { isSnapEnabled = value; }
        }

        private static void DrawMidlleSnapPoint(IPoint point)
        {

        }
        protected IPoint selectedPoint = null; //not belong here     
        public IPoint  SelectedPoint
		{
			set {
				selectedPoint = value;
			}
			
			get {
				return selectedPoint;
			}
        }//not belong here

        public abstract double[] getPoint(double[] coordinates);


        #region IDrawable Members

        public void drawLine(ILine line)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        public void drawPlane(IArea plane)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        public void drawLine(IPoint point1, IPoint point2)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        public void drawPlane(ILine line, IPoint point)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        public void drawPlane(IPoint point1, IPoint point2, IPoint point3)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        public void drawRect(IPoint point1, IPoint point2)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        #endregion

    }



}
